package cn.dapeng.spring.core;

import java.util.List;
import java.util.Map;

public interface BeanFactory {

    Object getBean(String beanName) throws Throwable;

    <T> T getBean(Class<T> type) throws Throwable;

    <T> Map<String, T> getBeansOfType(Class<T> type) throws Throwable;

    Class<?> getType(String beanName) throws Throwable;

    <T> List<T> getBeansOfTypeList(Class<T> type) throws Throwable;

    void registerBeanPostProcessor(BeanPostProcessor bpp);

}
